Github Copiolt:如何提升开发者的生产力和幸福感?
本文是Github的研究人员Eirini Kalliamvakou在2022.9月发表于github博客上的一个研究。 我最近使用copilot的体验也验证了这个研究的结论:确实更快,也更少重复性的工作。我觉得本文的一个提法是很有意思的:开发者的幸福感和成就感;它们和效率强相关。
看到了就顺手翻译了一下,以便于更多人看到。(有个瑕疵,这篇文章有一些引文,但是我没有找到这些引文出自何处)。下面是正文。原文链接见最后。
开发者已经习惯于利用工具来提升工作效率。这类工具和技术现在已经可以说是眼花缭乱,那么,当GitHub Copilot技术在2021年首次预览发布时,当时的假设是它能够提高开发者生产力,早期用户的报告也证实了这一点。现在已经发布了几个月了,是时间来定量和定性研究它的效果了。在研究“效果”之前,我们首先要定义一个问题:生产力意味着什么?
为什么开发者生产力难以衡量?
关于开发者生产力如何衡量,达成共识挺困难的——这方面的问题甚至比答案都多。例如:
1,什么是“正确的”生产力指标?[1,2]
2,开发者自我感觉良好,就真的是高生产力吗?[3]
3,传统的生产力观念(投入产出比)在涉及复杂问题解决和创造力的开发工作中是否还是适用的?[4]
我们在2021年的研究中发现,开发者对生产力的看法更多体现为“幸福感”。也就是说,能够专注于手上的任务,获得有意义的进展,在一天工作结束时,感觉良好,会对开发者的满意度和生产力产生实质性的影响。
这不是偶然的,其他学术研究也表明,这是对开发者很重要的[5],满意的开发者的绩效更好[6,7]。开发者生产力,绝不仅仅是简单机械的投入产出比。
在GitHub,我们如何思考开发者的生产力? AI辅助开发是一个新领域,没有太多既有研究可以借鉴。我们期望能衡量GitHub Copilot的效果,但这个效果是什么呢?首先我们对用户做了一些早期观察和访谈,然后,我们调研了2000多名开发者,以了解他们在大规模使用GitHub Copilot过程中的经验。我们从三个方面定义了我们的研究:
1.整体看待生产力。
在GitHub,我们倾向于从广泛的、可持续的角度思考开发者生产力及其影响因素。我们基于SPACE生产力框架来选择要调研的方面。
2.要包含开发者的第一视角。
我们进行了多轮研究,通过定性(感知)和定量(观察),以绘制一个全景图。我们希望验证:(a)用户的实际经验是否能证实了我们“遥感”视角的推断?(b)我们的定性反馈是否能泛化到我们庞大的用户群?
基于日常开发场景,评估GitHub Copilot的效果。在设计这个研究时,我们特别注意招募专业的开发者,并围绕开发者在一天内可能处理的典型任务进行设计和检验。
现在让我们深入了解这些发现!
发现1:开发者的生产力不仅仅是速度
通过大规模调研,我们希望了解,使用GitHub Copilot的开发者,是否在任务加速之外,还有其他领域的好处。以下是一些显著的发现:
1. 提高开发者满意度
60-75%的用户表示,在使用GitHub Copilot时,他们对工作更加满意,编码时挫败感更少,能够专注于更有价值的工作。让开发者对自己所做的事情感觉良好,显然很棒!
2. 节省精力
开发者报告称:GitHub Copilot能帮助他们保持心流(73%占比),并在重复任务中节省心力(87%占比)。基于以前的研究,上下文切换和中断会破坏开发者的感受,而有些类型的工作则会消耗精力[8,9]。从这个角度,这提升了开发者的幸福感。
下面是数据统计:
说明:上述调研涵盖SPACE框架的所有维度。SPACE是一个多维框架的首字母缩写,描述了开发者生产力的几个方面:
(1)满意度和幸福感;
(2)绩效;
(3)活动;
(4)沟通和协作;
(5)效率和心流。
在本文中,我们关注“满意度和幸福感”和“效率和心流”的结果。这是对开发者生产力至关重要但往往被忽视的两个维度。图表展示的是受访者在多大程度上同意(非常同意+同意)对应的陈述。我们回收了超过2000份问卷,其中约60%是专业开发者,还有约30%是学生,约7%属于业余开发者。
开发者认为GitHub Copilot是一种有效的生产力辅助工具,但并不仅限于此。一位用户这样描述他的体验:
(使用Copilot)我不需要考虑那么多,我只需要思考其中最有趣的部分。它激发了创意,让编码变得更有趣和更高效。
——来自一位高级软件工程师
我们从定性调研中得出的结论是,让GitHub Copilot承担开发中枯燥和重复的工作,可以减轻认知负担。这为开发者节省了更多精力,专注于需要复杂、关键性思考和问题解决的更有意义的工作,从而带来了更大的幸福感和满意度。
发现2:速度提升也是显著
在调研中我们发现,开发者也同样认为,通过使用GitHub Copilot,他们可以更快地完成任务,尤其是重复性的任务。这个发现是预期之中的(毕竟GitHub Copilot比人类写得更快),但高达90%的同意度,仍然令人惊喜。开发者普遍认为GitHub Copilot帮助他们更快地完成任务,我们能在实践中观察和测量这种效果吗?为此,我们进行了一项受控实验。
我们招募了95名专业开发者,随机将他们分为两组,并计时他们编写JavaScript HTTP服务器所需的时间。一组使用GitHub Copilot完成任务,另一组则不使用。我们尽可能控制了各种因素——所有开发者都已经熟悉JavaScript,我们给每个人相同的指导,利用GitHub Classroom自动对commit进行正确性和完整性的评分。在实验中,我们测量了每组平均完成任务的成功率和完成任务所需的时间。
结果显示,使用GitHub Copilot的组,在完成任务方面成功率更高(78% vs 70%)。
更为突出的是:使用GitHub Copilot的开发者,完成任务的速度明显更快——比没有使用GitHub Copilot的开发者快55%。具体来说,使用GitHub Copilot的开发者平均需要1小时11分钟来完成任务,而没有使用GitHub Copilot的开发者则需要平均2小时41分钟。这些结果在统计上具有显著性(P=.0017),其中95%置信区间的速度提高为[21%,89%]。
这些发现对开发者意味着什么?
我们的目标是为开发者构建软件提供更多支持,包括提升工作效率,以及在工作中有更多的的满意度和满足感。在我们的研究中,我们发现GitHub Copilot能让开发者做的更快,节省开发者的心力,以及专注于更有成效的工作,并最终在编码中体验到更多乐趣。
我们还了解到,那些早期在尝试使用GitHub Copilot的公司,正从中带来实质性的影响。在考虑如何持续提升生产力的同时时,他们也在从整体上来关注开发者福祉,推动使用那些能提升幸福感的开发工具。
工程师对于前沿技术的满意度,以及我们应该为工程师提供前沿工具,对我来说是一个重要方面。Copilot令人激动。
——某大型工程组织的CTO
随着GitHub Copilot的问世,不仅仅是我们在探索AI驱动的代码补全工具的影响!在生产力领域,我们最近看到了一项针对24名学生的评估,以及谷歌对机器学习增强代码补全的内部评估。更广泛地说,研究界正试图了解GitHub Copilot在多种背景下的影响:教育、安全、劳动力市场,以及开发者的实践和行为。我们目前都在尝试,在各种场景下使用GitHub Copilot。这是一个不断发展的领域,我们为学术界(包括我们自己)在未来几个月里将揭示的发现感到兴奋。
总之,我们的研究发现,GitHub Copilot在很大程度上提高了开发者的生产力,从而使他们在完成任务时更加迅速。此外,它还有助于节省开发者的心力,让他们能够专注于更令人满意的工作,从而提高工作满足感。
随着GitHub Copilot和其他AI驱动的代码补全工具的不断发展和完善,我们有理由相信这些工具将对软件开发行业产生深远的影响。在未来,我们将继续关注这一领域的研究发现,以了解这些工具如何在各个方面改变开发者的生产力和工作体验。
原文地址:https://github.blog/2022-09-07-research-quantifying-github-copilots-impact-on-developer-productivity-and-happiness/